/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package co.uniminuto.edu.gimnasioInteligente.beans;

import co.uniminuto.edu.gimnasioInteligente.entities.ProgramacionEvento;
import co.uniminuto.edu.gimnasioInteligente.entities.Sede;
import co.uniminuto.edu.gimnasioInteligente.session.ProgramacionEventoFacade;
import co.uniminuto.edu.gimnasioInteligente.session.SedeFacade;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.servlet.http.HttpServletRequest;
import org.primefaces.model.DefaultScheduleEvent;
import org.primefaces.model.LazyScheduleModel;
import org.primefaces.model.ScheduleModel;

/**
 *
 * @author diegoalejandro
 */
@ManagedBean(name = "programacionEventos")
@SessionScoped
public class programacionEventosBean {

    @EJB
    SedeFacade mySedeFacadeSession;
    @EJB
    ProgramacionEventoFacade myprogramacionEventoFacadeSession;
    //Listas
    private List<Sede> sedesList;
    //Calendario
    private ScheduleModel lazyEventModel;
    private Integer sedeSeleccionadaId;

    public Integer getSedeSeleccionadaId() {
        return sedeSeleccionadaId;
    }

    public void setSedeSeleccionadaId(Integer sedeSeleccionadaId) {
        this.sedeSeleccionadaId = sedeSeleccionadaId;
    }

    /**
     * Creates a new instance of programacionEventosBean
     */
    public programacionEventosBean() {
        System.err.println("LA SEDE SELECIONADA ES" + sedeSeleccionadaId);
        lazyEventModel = new LazyScheduleModel() {
            @Override
            public void loadEvents(Date start, Date end) {
                clear();
                Sede sedeSeleccionada = new Sede();
                sedeSeleccionada = mySedeFacadeSession.find(sedeSeleccionadaId);

                List<ProgramacionEvento> programacionEventoList = new ArrayList<>();
                programacionEventoList = myprogramacionEventoFacadeSession.getEventosPorSede(sedeSeleccionadaId);
                System.out.println("Eventos de: " + sedeSeleccionada.getNombre());
                for (ProgramacionEvento progEvent : programacionEventoList) {
                    addEvent(new DefaultScheduleEvent(progEvent.getActividadidActividad().getTipo()+ 
                            " - " +progEvent.getLugarFisico(),
                            progEvent.getFecha(), progEvent.getFecha()));
                }
            }
        };
    }

    public ScheduleModel getLazyEventModel() {
        return lazyEventModel;
    }

    public List<Sede> getSedesList() {
        sedesList = new ArrayList<>();
        sedesList = mySedeFacadeSession.findAll();
        return sedesList;
    }

    public void setSedesList(List<Sede> sedesList) {
        this.sedesList = sedesList;
    }

    public String generarSchedule(int sede) {
        System.err.println("heyyyyyyy" + sede);
        setSedeSeleccionadaId(sede);
        return "programacionEventoDetalle";
    }
}
